#ifndef HEADER_H
#define HEADER_H
/************************************************
  * 描述
  * File: header.h
  * Author: qijiangyong@mozihealthcare.cn
  * Date: 2025-08-13
  * Update:
  ***********************************************/
#include "common/export.h"
#include <QThread>

namespace thread_pool_data
{
	// 基准线程数
	constexpr int baseThreadSize = 4;

	// 线程空闲超时时间
	constexpr int threadIdleTime = 30000;

	// 每个线程的栈大小【1MB】
	constexpr int threadStackSize = 1024 * 1024;

	// 是否为I/O密集型
	constexpr bool ioIntensive = false;

	// 最大等待耗时
	constexpr int maxWaitQuitTime = 5000;

	// 自定义优先级
	enum taskPriority
	{
		TP_IDLE,        // 最低 -- 空闲时执行
		TP_LOW,         // 低
		TP_NORMAL,      // 默认
		TP_HIGH,        // 高
		TP_Emergency    // 紧急 -- 涉及权限，谨慎使用
	 };
	/**
	 * @brief tp2qp -- 任务线程优先级转Qt线程优先级
	 * @param tp -- 任务/业务线程优先级
	 * @return -- Qt线程优先级
	 */
	inline CXI_COMMON_EXPORT QThread::Priority tp2qp(taskPriority tp)
	{
		QThread::Priority qp;
		switch(tp)
		{
		case TP_IDLE:
			qp = QThread::IdlePriority;
			break;
		case TP_LOW:
			qp = QThread::LowPriority;
			break;
		case TP_NORMAL:
			qp = QThread::NormalPriority;
			break;
		case TP_HIGH:
			qp = QThread::HighPriority;
			break;
		case TP_Emergency:
			qp = QThread::TimeCriticalPriority;
			break;
		}

		return qp;
	}
}

#endif // HEADER_H
